/* Copyright 2001,2002,2003 NAH6 BV
 * All Rights Reserved
 *
 *  $Header: /var/lib/cvs/secphone/ui/crypto/cryptoTwoFish.h,v 1.2 2003/11/21 12:39:24 itsme Exp $
 *
 *
 */


#ifndef __FNACRYPTOTWOFISH_H__
//--------------------------------------------------------------------------

#include "vectorutils.h"
#include "crypto.h"

class CryptoTwoFish {
public:
    CryptoTwoFish();
    ~CryptoTwoFish();

    enum { BLOCKSIZE= 16 };                 // in bytes
    enum { KEYSIZE= 32 };                   // in bytes

    void ClearKey();
    bool SetKey(const ByteVector& key);
    const ByteVector& GetKey() const;

    ByteVector Encrypt(const ByteVector& plain);

private:
    struct crypto_twofish_state m_state;
    ByteVector m_key;
};

#define __FNACRYPTOTWOFISH_H__
#endif

